package com.slx.sthq.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * @author: 人物
 * @description: com.zfw.system.domain
 * @date:2023/11/23
 */
@Data
@TableName("zfw_common_person")
public class ZfwCommonPerson implements Serializable {

    /**
     * 人物照片
     */
    @TableField(exist = false)
    @ApiModelProperty("人物照片")
    MultipartFile multipartFile;
    /**
     * 主键
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 1.事件，2.谈话，3.线索
     */
    @ApiModelProperty("1.事件，2.谈话，3.线索")
    private String dataType;
    /**
     * 关联id
     */
    @ApiModelProperty("关联id")
    private Long linkId;
    /**
     * 姓名
     */
    @ApiModelProperty("姓名")
    private String name;
    /**
     * 人员类别
     */
    @ApiModelProperty("人员类别")
    private String personType;
    /**
     * 年龄
     */
    @ApiModelProperty("年龄")
    private Integer age;
    /**
     * 照片地址
     */
    @ApiModelProperty("照片地址")
    private String photoUrl;
    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    private String phone;
    /**
     * 军衔
     */
    @ApiModelProperty("军衔")
    private String rank;
    /**
     * 身份证
     */
    @ApiModelProperty("身份证")
    private String idNumber;
    /**
     * 出生年月
     */
    @ApiModelProperty("出生年月")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
    /**
     * 性别
     */
    @ApiModelProperty("性别")
    private String sex;
    /**
     * 职业
     */
    @ApiModelProperty("职业")
    private String career;
    /**
     * 工作单位
     */
    @ApiModelProperty("工作单位")
    private String workAddress;
    /**
     * 文化程度
     */
    @ApiModelProperty("文化程度")
    private String cultureDegree;
    /**
     * 居住地
     */
    @ApiModelProperty("居住地")
    private String liveAddress;
   /* @ApiModelProperty("户口地")
    private String accountsAddress;*/
    /**
     * 户籍地
     */
    @ApiModelProperty("户籍地")
    private String domicileAddress;
    /**
     * 人际关系图谱json
     */
    @ApiModelProperty("人际关系图谱json")
    private String personLinkJson;
    /**
     * 部队经历json数据
     */
    @ApiModelProperty("部队经历json数据")
    private String troopJson;
    /**
     * 工作经历json数据
     */
    @ApiModelProperty("工作经历json数据")
    private String workJson;
    /**
     * 出入境记录json数据
     */
    @ApiModelProperty("出入境记录json数据")
    private String entryExitJson;
    /**
     * 日程记录json数据
     */
    @ApiModelProperty("日程记录json数据")
    private String scheduleJson;
    /**
     * 网络账号json数据
     */
    @ApiModelProperty("网络账号json数据")
    private String internetAccountJson;
    /**
     * 银行流水json数据
     */
    @ApiModelProperty("银行流水json数据")
    private String bankStatementJson;
    /**
     * 教育经历json数据
     */
    @ApiModelProperty("教育经历json数据")
    private String educationJson;
    /**
     * 文件id
     */
    @ApiModelProperty("文件id")
    private Long fileId;
    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private int orderIndex;
    /**
     * 谈话对象（谈话记录表id）
     */
    @ApiModelProperty("谈话对象（谈话记录表id）")
    private Long talkRecordId;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ZfwCommonPerson that = (ZfwCommonPerson) o;
        return Objects.equals(name, that.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name);
    }
}
